#include<iostream>
#include<vector>
#include<unordered_map>
#include<algorithm>
using namespace std;
class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        //题目解法：对每一个数组内部的进行排序，排序之后的两个字符如果是一样的，代表着就是字母异位词
        vector<vector<string>> ret;
        unordered_map<string,vector<string>> hash;
        for(int i = 0;i<strs.size();i++)
        {
            //首先对这个字符串进行排序
            string tmp = strs[i];
            sort(tmp.begin(),tmp.end());
            hash[tmp].push_back(strs[i]);
        }
        for(auto& e:hash)
        {
            ret.push_back(e.second);
        }
        return ret;
    }
};